<?php
session_start();
require_once "../util/function.php";
require_once "conta.php";
require_once "fornecedor.php";
require_once "album.php";
require_once "foto.php";
require_once "categoriaBO.php";
require_once "contaBO.php";
require_once 'albumBO.php';
require_once 'fotoBO.php';



Class ContaController {

    private $contaBO;
    private $conta;
    private $album;
    private $albumBO;
    private $foto;
    private $fotoBO;

    public function  __construct() {
        $this->contaBO = new ContaBO();
        $this->conta = new Conta();
        $this->album = new Album();
        $this->albumBO = new AlbumBO();
        $this->foto = new Foto();
        $this->fotoBO = new FotoBO();
    }

    public function tratarRequisicao($action = null) {
        switch($action) {

            case "":
                break;

            case "LISTAR_TODAS_CONTAS":
                break;

            case "PRE_CADASTRO_FORNECEDOR":
                $this->preCadastro();
                break;

            case "PRE_CADASTRO_CONTA":
                $this->preCadastroConta();
            break;

            case "AUTENTICAR":
                $this->autenticar();
            break;
        
            case "UPLOAD_FOTO";
                $this->uploadFoto();
                break;

            case "ATUALIZAR_PERFIL":
                $this->atualizarPerfil();
            break;

            case "NOVO_ALBUM":
                $this->novoAlbum();
            break;

            case "NOVA_FOTO":
                $this->novaFoto();
            break;

        }
    }
    
    public function uploadFoto(){
         
	$foto = $_FILES["foto"];
        $idconta = $_POST["id"];
        
	// Se a foto estiver sido selecionada
	if (!empty($foto["name"])) {

           // Prepara a variável caso o formulário tenha sido postado
            $arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;

            // Pega extensão do arquivo, o indice 1 do array conterá a extensão
            preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);

            // Gera nome único para a imagem
            $diretorio = criarDiretorio("/meugrandedia/conta/contas/conta_".$idconta);
            $imagem_nome = criarNome($ext[1],$diretorio,"perfil_$idconta");

            // Caminho de onde a imagem ficará
            $imagem_dir = $diretorio ."/". $imagem_nome;
            // Faz o upload da imagem
            move_uploaded_file($arquivo["tmp_name"], $imagem_dir);

            $this->contaBO->gravarImagem($imagem_nome, $ext[1], $idconta);
      }
    }

    public function autenticar(){
        $usuario = $_REQUEST["usuarioEmail"];
        $senha = $_REQUEST["senha"];

        $this->conta->setLogin($usuario);
        $this->conta->setSenha($senha);

        $this->conta = $this->contaBO->autenticar($this->conta);

        if($this->conta == null){
            $script ='<script language="javascript">location.href=\'login.php?erro=1\';</script>';
            echo $script;
            exit;
        }
        else if($this->conta->getCadastroConfirmado() == "N"){
            $script ='<script language="javascript">location.href=\'login.php?erro=3\';</script>';
            echo $script;
            exit;
        }

        // coloca na sessao informacoes do usuario que logou
       
        $_SESSION["idConta"] = $this->conta->getIdConta();
        $_SESSION["loginConta"] = $this->conta->getLogin();
        $_SESSION["apelidoConta"] = $this->conta->getApelido();
        $_SESSION["senhaConta"] = $this->conta->getSenha();
        $_SESSION["tipoConta"] = $this->conta->getTipoConta();

        $script ='<script language="javascript">location.href=\'admin.php\';</script>';
        echo $script;
    }

    public function preCadastroConta() {
        $this->conta->setDataCriacao(date("Y-m-d"));
        $this->conta->setIdPlano(1);
        $this->conta->setLogin($_POST["usuario"]);
        $this->conta->setSenha($_POST["senha"]);
        $this->conta->setTipoConta("U");
        $this->conta->setApelido($_POST["apelido"]);

        $msg = $this->contaBO->preCadastro($this->conta);
        $contaId = explode("@",$msg);
        $this->conta->setIdConta($contaId[1]);


        $subject = " Confirmacao de cadastro. ";
        $textoEmail = " Ola ". $this->conta->getApelido().", bem vindo ao Meu Grande Dia! ";
        $textoEmail .= "<p> Para confirmar seu cadastro clique <a href='http://www.meugrandedia.com.br/confirmar-cadastro?id=".$this->conta->getIdConta()."'> Aqui </a></p>";
        
        $textoEmail.= "</td></tr><tr><td align='center' style='font-weight:bold'>Meu Grande Dia</td></tr></table>";

        enviaEmail($textoEmail, $subject, $this->conta->getLogin() );
        $script ='<script language="javascript">location.href=\'preCadastro.php?msg='.$msg.'\';</script>';
        echo $script;
    }

    public function preCadastro() {

        $conta = new Conta();
        $conta->setDataCriacao(date("Y-m-d"));
        $conta->setIdPlano(1);
        $conta->setLogin($_POST["usuario"]);
        // tipo conta de fornecedor
        $conta->setTipoConta("F");

        $fornecedor = new Fornecedor();
        $fornecedor->setRazaoSocial($_POST["razaoSocial"]);
        $fornecedor->setNomeFantasia($_POST["nomeFantasia"]);
        $fornecedor->setLogradouro($_POST["end"]);
        $fornecedor->setNumero($_POST["numero"]);
        $fornecedor->setBairro($_POST["bairro"]);
        $fornecedor->setComplemento($_POST["complemento"]);
        $fornecedor->setCidade($_POST["cidade"]);
        $fornecedor->setUf($_POST["estado"]);
        $fornecedor->setContato($_POST["contato"]);
        $fornecedor->setTelefone($_POST["telefone"]);
        $fornecedor->setCelular($_POST["celular"]);
        $fornecedor->setEmail($_POST["email"]);
        $fornecedor->setSite($_POST["website"]);

        $listCheckbox = $_POST['ckCategoria'];

        $msg = $this->contaBO->preCadastro($conta, $fornecedor, $listCheckbox);
        $script ='<script language="javascript">location.href=\'preCadastro.php?msg='.$msg.'\';</script>';
        echo $script;
    }

    public function buscarContaPorId($idConta){
        return $this->contaBO->buscarContaPorId($idConta);
    }

    public function atualizarPerfil(){
        $this->conta->setIdConta($_POST["id"]);
        //$this->conta->setTipoConta($_POST["tipoConta"]);
        $this->conta->setNomeDosNoivos($_POST["nomeDosNoivos"]);
        $this->conta->setDataEvento(ajustaDataSql($_POST["dataEvento"]));
        $this->conta->setLocalEventoCerimonia($_POST["localEventoCerimonia"]);
        $this->conta->setLocalEventoFesta($_POST["localEventoFesta"]);
        $this->conta->setHistoria($_POST["historia"]);
        $this->conta->setRedeSocialFacebook($_POST["redeSocialFacebook"]);
        $this->conta->setRedeSocialTwitter($_POST["redeSocialTwitter"]);
        $this->conta->setRedeSocialOrkut($_POST["redeSocialOrkut"]);
        
        $this->contaBO->atualizarPerfil($this->conta);

    }

    public function novoAlbum(){
        $this->album->setIdConta($_POST["id"]);
        $this->album->setDataCriacao(date("Y-m-d"));
        $this->album->setLegenda($_POST["legenda"]);
        $this->album = $this->albumBO->novoAlbum($this->album);
        echo $this->album->getIdAlbum();
    }

     public function novaFoto(){

	$foto = $_FILES["foto"];
        $idconta = $_POST["id"];
        $idAlbum = $_POST["album"];
        $legenda = $_POST["legenda"];

	// Se a foto estiver sido selecionada
	if (!empty($foto["name"])) {

           // Prepara a variável caso o formulário tenha sido postado
            $arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;

            // Pega extensão do arquivo, o indice 1 do array conterá a extensão
            preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);

            // Gera nome único para a imagem
            $dir = "/meugrandedia/conta/contas/conta_".$idconta;
            $diretorio = criarDiretorio($dir);

            $imagem_nome = criarNome($ext[1],$diretorio);
            echo $imagem_nome;

            // Caminho de onde a imagem ficará
            $imagem_dir = $diretorio ."/". $imagem_nome;

            $caminho =  $dir ."/". $imagem_nome;
            
            // Faz o upload da imagem
            move_uploaded_file($arquivo["tmp_name"], $imagem_dir);

            $this->foto = $this->fotoBO->novaFoto($idAlbum, $legenda, $caminho );
      }
    }

    public function listCategoria() {
        $categoriaBO = new CategoriaBO();
        return $categoriaBO->listCategoria();
    }

    public function listAlbunsPorIdConta($idConta) {
        return $this->albumBO->listAlbunsPorIdConta($idConta);
    }

    public function listFotosPorIdAlbum($idAlbum) {
        return $this->fotoBO->listFotosPorIdAlbum($idAlbum);
    }
    
    public function montarImagemConta($idConta){
        $this->contaBO->montarImagemConta($idConta);
    }

    public function getContaBO() {
        return $this->contaBO;
    }

    public function setContaBO($contaBO) {
        $this->contaBO = $contaBO;
    }
    public function getConta() {
        return $this->conta;
    }

    public function setConta($conta) {
        $this->conta = $conta;
    }

    public function getAlbum() {
        return $this->album;
    }

    public function setAlbum($album) {
        $this->album = $album;
    }
    public function getAlbumBO() {
        return $this->albumBO;
    }

    public function setAlbumBO($albumBO) {
        $this->albumBO = $albumBO;
    }

    public function getFoto() {
        return $this->foto;
    }

    public function setFoto($foto) {
        $this->foto = $foto;
    }

    public function getFotoBO() {
        return $this->fotoBO;
    }

    public function setFotoBO($fotoBO) {
        $this->fotoBO = $fotoBO;
    }

    
    
}

?>

